!!! Objemový model struktury C pro nelineární úlohu při zatížení ve směru osy x !!!

FINISH
/CLEAR

*ABBR,INPUT,'/INPUT,strukturaC_nonlinear_X,txt'   
*AFUN,DEG 

/PREP7
 
 
!!!!!!!!!!!!!!!!!!!
!!! PREPROCESOR !!!
!!!!!!!!!!!!!!!!!!!           
  
*AFUN,DEG
/PREP7

!!! Vstupni parametry !!!
alfa=60					! uhel alfa	[°]			
H=10					! delka H [mm]
LH=1.25					! pomer L/H [-]				
Emod=200000				! modul pruznosti v tahu zakladniho materialu [MPa]
nu=0.3					! Poissonuv pomer zakladniho materialu [-]
Fappl=-1				! zatezna sila [N]
ELSIZE=0.5				! velikost prvku [mm]
NSUBSTappl=50			! pocet substepu
pom_def=0.2				! konecna pomerna podelna deformace; kladna hodnota pro tah, zaporna pro tlak

*dim,T_matrix,array,12	! import externe vypoctenych hodnot tloustky odpovidajicich hodnotam uhlu alfa pro danou modifikaci
T_matrix(1,1)=1.617, 1.726, 1.824, 1.909, 1.982, 2.040, 2.083, 2.110	

T=T_matrix(1,1)			! vyber prislusne tloustky, ktera odpovida uhlu alfa nastavenemu v dany okamzik


SELTOL,1e-6				! automaticke nastaveni potrebnych parametru
L=LH*H

!!! Definice elementu !!!
ET,1,SOLID187

!!! Definice materialu !!!
MP,EX,1,Emod
MP,PRXY,1,,nu

!!! Tvorba geometrie !!!
	
	!!! Referencni geometrie !!!
!K,10,H-L*cos(alfa),0,0
!K,20,H,L*sin(alfa),0
!K,30,0,L*sin(alfa),0

!L,10,20	$	L,20,30

	!!! Vnitrni geometrie !!!
K,1,H-L*cos(alfa)-T/(2*cos(90-alfa))+T/(2*tan(alfa)),0,0
K,12,H-L*cos(alfa)-T/(2*cos(90-alfa))+T/(2*tan(alfa)),T/2,0
K,2,H-T/2*(cos(alfa/2)/sin(alfa/2)),L*sin(alfa)-T/2,0
K,3,0,L*sin(alfa)-T/2,0

L,1,12	$	L,12,2	$	L,2,3	

	!!! Vnejsi geometrie !!!
!K,11,H-L*cos(alfa)+T/(2*cos(90-alfa)),0,0
K,11,H-L*cos(alfa)+T/(2*tan(alfa/2)),T/2,0
K,1122,H+T/2*(cos(alfa/2)/sin(alfa/2))-T/2*tan(90-alfa)-T/2*tan(90-alfa),L*sin(alfa)-T/2,0
K,22,H+T/2*(cos(alfa/2)/sin(alfa/2))-T/2*tan(90-alfa)-T/2*tan(90-alfa),L*sin(alfa),0
K,33,0,L*sin(alfa),0
K,111,H-L*cos(alfa),0,0
K,41,2*H-L*cos(alfa),T/2,0
K,44,2*H-L*cos(alfa),0,0							

L,11,1122	$	L,1122,22	$	L,22,33	

L,1,111	$	L,111,44	$	L,44,41	$	L,41,11	$	L,3,33

	!!! Vytvoreni plochy !!!
LSEL,ALL
LPLOT
AL,ALL

!ARSYM,X,ALL,,,,1,0
!ASEL,ALL
!ARSYM,Y,ALL,,,,1,0
!ASEL,ALL

!AADD,ALL

!!! Vytvoreni objemu 1 !!!
VEXT,ALL,,,,,T/2

!!! Rotace objemu 1 !!!
! Definice lokalniho SS pro rotaci !
K,1000,0,T/4,T/4
K,2000,0,T/4,T/4+1
K,3000,0,T/4+1,T/4+1
NKPT,1,1000
NKPT,2,2000
NKPT,3,3000
CS,11,1,1,2,3
! Rotace !
VSEL,ALL
VGEN,2,ALL,,,0,-90,0
CSYS,0

!!! Rotace objemu 2 !!!
! Definice lokalniho SS pro rotaci !
K,4000,H+T/2*(cos(alfa/2)/sin(alfa/2))-T/2*tan(90-alfa)-T/2*tan(90-alfa),L*sin(alfa)-T/4,T/4
K,5000,H+T/2*(cos(alfa/2)/sin(alfa/2))-T/2*tan(90-alfa)-T/2*tan(90-alfa),L*sin(alfa)-T/4,T/4+1
K,6000,H+T/2*(cos(alfa/2)/sin(alfa/2))-T*tan(90-alfa),L*sin(alfa)-T/2,T/4
NKPT,4,4000
NKPT,5,5000
NKPT,6,6000
CS,12,1,4,5,6
! Rotace !
VSEL,S,VOLU,,1
VGEN,2,ALL,,,0,-90,0
VSEL,ALL
CSYS,0

!!! Rotace objemu 3 !!!
! Definice lokalniho SS pro rotaci !
K,7000,2*H-L*cos(alfa),L*sin(alfa)-T/4,L*sin(alfa)-T/4
K,8000,2*H-L*cos(alfa),L*sin(alfa)-T/4,L*sin(alfa)-T/4+1
K,9000,2*H-L*cos(alfa),L*sin(alfa)-T/4-1,L*sin(alfa)-T/4+1
NKPT,7,7000
NKPT,8,8000
NKPT,9,9000
CS,13,1,7,8,9
! Rotace !
VSEL,S,VOLU,,3
VGEN,2,ALL,,,0,-90,0
VSEL,ALL
CSYS,0

!!! Vytvoreni SS pro korelaci s analytickym modelem !!!
K,10000,0,0,0
K,11000,0,0,1
K,12000,0,-1,1
NKPT,10,10000
NKPT,11,11000
NKPT,12,12000
CS,14,0,10,11,12

CSYS,0

!!! Odstraneni pomocnych uzlu !!!
NSEL,S,NODE,,1,12,1
NDELE,ALL

!!! Spojeni do jednoho objemu !!!
VSEL,ALL
VADD,ALL

!!! Vytvoreni site !!!
VSEL,ALL
ESIZE,ELSIZE
VATT,1,,1
VMESH,ALL

NUMMRG,NODE,0.000001
NUMMRG,KP,0.000001

!!! Okrajove podminky !!!
NSEL,S,LOC,Z,0					$	D,ALL,UZ,0
NSEL,S,LOC,Y,0					$	D,ALL,UY,0
NSEL,S,LOC,X,0					$	D,ALL,UX,0
NSEL,S,LOC,Z,L*sin(alfa)		$	CP,1,UZ,ALL
NSEL,S,LOC,X,2*H-L*cos(alfa)	$	CP,2,UX,ALL
NSEL,S,LOC,Y,L*sin(alfa)		$	CP,3,UY,ALL

!!! Zatizeni !!!
NSEL,S,LOC,Z,L*sin(alfa)	
D,ALL,UZ,pom_def*L*sin(alfa)

ALLSEL,ALL

!!!!!!!!!!!!!!!!
!!! SOLUTION !!!
!!!!!!!!!!!!!!!!

/SOLU

ANTYPE,STATIC,NEW

NLGEOM,ON
AUTOTS,OFF    
NSUBST,NSUBSTappl    
OUTRES,ALL,ALL

SOLVE


!!!!!!!!!!!!!!!!!!!!!
!!! POSTPROCESSOR !!!
!!!!!!!!!!!!!!!!!!!!!

/POST1

!!!                                         !!!
!!! Zjisteni vysledku jednotlivych substepu !!!
!!!                                         !!!

CSYS,14

*dim,UXDISP,array,NSUBSTappl
*dim,UYDISP,array,NSUBSTappl
*dim,UZDISP,array,NSUBSTappl
*dim,X0,array,NSUBSTappl+1
*dim,Y0,array,NSUBSTappl+1
*dim,Z0,array,NSUBSTappl+1
*dim,epsX,array,NSUBSTappl
*dim,epsY,array,NSUBSTappl
*dim,epsZ,array,NSUBSTappl
*dim,nuCALCxy,array,NSUBSTappl
*dim,nuCALCxz,array,NSUBSTappl
*dim,nuCALCzx,array,NSUBSTappl
*dim,S,array,NSUBSTappl
*dim,dsigma,array,NSUBSTappl
*dim,EcalcX,array,NSUBSTappl
*dim,EcalcZ,array,NSUBSTappl
*dim,vzdalenost,array,NSUBSTappl
*dim,kontrola,array,NSUBSTappl
*dim,FXsum,array,NSUBSTappl+1
*dim,FYsum,array,NSUBSTappl+1
*dim,FZsum,array,NSUBSTappl+1
*dim,epsX_total,array,NSUBSTappl
*dim,epsY_total,array,NSUBSTappl
*dim,epsZ_total,array,NSUBSTappl

X0(1,1)=L*sin(alfa)
Y0(1,1)=L*sin(alfa)
Z0(1,1)=2*H-L*cos(alfa)
UXdisp_total=0
UYdisp_total=0
UZdisp_total=0


*DO,step,1,NSUBSTappl,1
	SET,,, ,,, ,step 

CSYS,14
	
!!! Zjisteni posuvu ve smeru Z !!!
NSEL,S,LOC,Z,2*H-L*cos(alfa)
*GET,minnode1,NODE,0,NUM,MIN
*GET,UZdisp(step,1),NODE,minnode1,U,X

!!! Zjisteni posuvu ve smeru X !!!
NSEL,S,LOC,X,L*sin(alfa)	
*GET,minnode2,NODE,0,NUM,MIN
*GET,UXdisp(step,1),NODE,minnode2,U,Z

!!! Zjisteni posuvu ve smeru y !!!
NSEL,S,LOC,Y,-L*sin(alfa)
*GET,minnode3,NODE,0,NUM,MIN
*GET,UYdisp(step,1),NODE,minnode3,U,Y

CSYS,0

!!! Zjisteni posovu pro posouzeni dotyku ramecku !!!
NSEL,S,LOC,X,H-L*cos(alfa)-T/(2*cos(90-alfa))+T/(2*tan(alfa))	$	NSEL,R,LOC,Z,0	$	NSEL,R,LOC,Y,0
*GET,minnode4,NODE,0,NUM,MIN
*GET,vzdalenost(step,1),NODE,minnode4,U,X

!!! Zjisteni pusobici sily !!!
NSEL,S,LOC,Z,L*sin(alfa)
FSUM
*GET,FZsum(step+1,1),FSUM,0,ITEM,FX    $  *GET,FYsum(step+1,1),FSUM,0,ITEM,FY      $  *GET,FXsum(step+1,1),FSUM,0,ITEM,FZ

!!! Vypocet Poissonova pomeru v pricnem smeru z !!!
X0(step+1,1)=X0(1,1)+UXdisp(step,1)
Z0(step+1,1)=Z0(1,1)+UZdisp(step,1)

epsX(step,1)=(X0(step+1,1)-X0(step,1))/X0(step,1)
epsZ(step,1)=(Z0(step+1,1)-Z0(step,1))/Z0(step,1)

nuCALCxz(step,1)=-epsZ(step,1)/epsX(step,1)

!!! Vypocet Poissonova pomeru v pricnem smeru y !!!
Y0(step+1,1)=Y0(1,1)+UYdisp(step,1)

epsY(step,1)=(Y0(step+1,1)-Y0(step,1))/Y0(step,1)

nuCALCxy(step,1)=-epsY(step,1)/epsX(step,1)

!!! Urceni plochy bunek !!!
S(step,1)=Y0(step,1)*Z0(step,1)

!!! Vypocet Ex !!!
dsigma(step,1)=(FXsum(step+1,1)-FXsum(step,1))/S(step,1)
EcalcX(step,1)=abs(dsigma(step,1)/epsX(step,1))/Emod

!!! Kontrola dotyku ramecku !!!
kontrola(step,1)=H-L*cos(alfa)-T/(2*cos(90-alfa))+T/(2*tan(alfa))+vzdalenost(step,1)

!!! Uprava matic Fsum !!!
FYsum(step,1)=FYsum(step+1,1)
FXsum(step,1)=FXsum(step+1,1)
FZsum(step,1)=FZsum(step+1,1)
	
!!! Celkova pomerna deformace X !!!
epsX_total(step,1)=UXdisp(step,1)/X0(1,1)

!!! Celkova pomerna deformace X !!!
epsY_total(step,1)=UYdisp(step,1)/Y0(1,1)

!!! Celkova pomerna deformace Z !!!
epsZ_total(step,1)=UZdisp(step,1)/Z0(1,1)

*ENDDO	

!!! Uprava matice zatezne sily !!!
FXsum(NSUBSTappl+1,1)=0
FYsum(NSUBSTappl+1,1)=0
FZsum(NSUBSTappl+1,1)=0


!!!!!!!!!!!!!!!!!!!!!!!
!!! Export výsledků !!!
!!!!!!!!!!!!!!!!!!!!!!!

*MWRITE,epsX_total,vysledky_epsX_total,txt
(2F14.10)

!*MWRITE,epsY_total,vysledky_epsY_total,txt
!(2F14.6)

!*MWRITE,epsZ_total,vysledky_epsZ_total,txt
!(2F14.6)

*MWRITE,nuCALCxy,vysledky_nuCALCxy,txt
(2F14.4)

*MWRITE,nuCALCxz,vysledky_nuCALCxz,txt
(2F14.4)

*MWRITE,EcalcX,vysledky_EcalcX,txt
(2F15.8)

*MWRITE,kontrola,vysledky_kontrola,txt
(2F15.8)




